#include <bits/stdc++.h>

using namespace std;

const int N=1e4+10;

int n,ret;
vector<int> mp[N];
int t[N],in[N],out[N],f[N];

int main() 
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x,y,z;cin>>x>>y;
		t[x]=y;
		while(cin>>z,z)//z->x 
		{
			mp[z].push_back(x);
			in[x]++; out[z]++;
		}
	}
	
	queue<int> q;
	for(int i=1;i<=n;i++)
	{
		if(in[i]==0) 
		{
			q.push(i);
			f[i]=t[i];
		}
	}
	
	while(q.size())
	{
		int p=q.front(); q.pop();
		for(auto e:mp[p])
		{
			in[e]--;
			f[e]=max(f[e],f[p]+t[e]);
			if(in[e]==0) q.push(e);
		}
	}
	
	for(int i=1;i<=n;i++)
	{
		if(out[i]==0) ret=max(ret,f[i]);
	}
	
	cout<<ret<<endl;
	return 0;
}
